﻿using System;
using MySql.Data.MySqlClient;
using System.Windows.Forms;

namespace TransporteAgua
{
    public partial class frmTomarPedidos : Form
    {
        frmPrincipal parent;
        Database datos;
		bool agregando;
        public frmTomarPedidos(Database db, frmPrincipal dad)
        {
            InitializeComponent();
            parent = dad as frmPrincipal;
            datos = db;
        }
        private void frmPedirPedidos_FormClosing(object sender, FormClosingEventArgs e)
        {
            txtIdPedido.Text = txtIDCliente.Text = txtCliente.Text = txtContacto.Text = txtTelefono.Text = txtDireccionE.Text = txtCrucesE.Text = txtColoniaE.Text = txtSectorE.Text = txtCPE.Text = cmbCapacidad.Text = cmbTipo.Text = txtPrecio.Text = txtObservaciones.Text = "";
            e.Cancel = true;
            Hide();
        }

        // refresca la fecha cuando se activa la ventana
        private void frmTomarPedidos_Activated(object sender, EventArgs e)
        {
            if(agregando)txtFechaRecepcion.Text = DateTime.Now.ToString("ddd, dd MMM yyyy hh:mm tt");
        }

        // agrega a pedidos
        private void btnAgregar_Click(object sender, EventArgs e)
        {
            try
            {
				string fechaenvio = fechaAenviar.Value.ToString("yyyy-MM-dd hh:mm");
                string[] campos = { "idcliente","cliente","contacto","telefono","direccionE","tipo","capacidad","litros","precio","observaciones","fechaRecibido","fechaEnvio"};
                string[] valores = { txtIDCliente.Text, txtCliente.Text, txtContacto.Text, txtTelefono.Text,txtDireccionE.Text, cmbTipo.Text,cmbCapacidad.Text,txtLitros.Text,txtPrecio.Text,txtObservaciones.Text, DateTime.Now.ToString("yyyy-MM-dd HH:mm"),fechaenvio};
                datos.agregar("pedidos", campos, valores);
                MessageBox.Show("Pedido agregado correctamente!", "Base de datos", MessageBoxButtons.OK, MessageBoxIcon.Information);				
                parent.pendientes.llenarGrid();
                parent.porCobrar.llenarGrid();
                Close();
            }
            catch (MySqlException e1) {
                MessageBox.Show(e1.Message, "Error de base de datos!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            parent.clientes.activarSeleccionar();
            parent.clientes.Show();
        }
        public void llenarCliente(string [] datos){
            txtIDCliente.Text = datos[0];
			txtCliente.Text = datos[1];
            txtContacto.Text = datos[2];
			txtTelefono.Text = datos[3];
			txtDireccionE.Text = datos[4];
			txtCrucesE.Text = datos[5];
			txtColoniaE.Text = datos[6];
			txtSectorE.Text = datos[7];
			txtCPE.Text = datos[8];
        }

		public void modificar(string idPedido) {
			lblTitulo.Text = "Modificar Pedido";
			btnAgregar.Visible = false;
			btnModificar.Visible = true;
			agregando = false;

			// info pedido
			string[] pedido = datos.getRow(idPedido, "pedidos");			
			txtIdPedido.Text = pedido[0];
			txtFechaRecepcion.Text = DateTime.Parse(pedido[11]).ToString("ddd, dd MMM yyyy hh:mm tt");
			cmbCapacidad.Text = pedido[7];
			txtLitros.Text = pedido[8];
			cmbTipo.Text = pedido[6];
			fechaAenviar.Value = DateTime.Parse(pedido[12]);
			txtPrecio.Text = pedido[9];
			txtObservaciones.Text = pedido[10];

			// info clientes
			string[] cliente = datos.getRow(pedido[1], "clientes");
			txtIDCliente.Text = cliente[0];
			txtCliente.Text = cliente[1];
			txtContacto.Text = cliente[19];
			txtTelefono.Text = cliente[20];
			txtDireccionE.Text = cliente[13];
			txtCrucesE.Text = cliente[14];
			txtColoniaE.Text = cliente[15];
			txtSectorE.Text = cliente[16];
			txtCPE.Text = cliente[17];

			parent.tomarPedido.Show();
			parent.tomarPedido.Focus();
		}
		public void agregar() {
			lblTitulo.Text = "Agregar Nuevo Pedido";
			btnAgregar.Visible = true;
			btnModificar.Visible = false;
			agregando = true;
			parent.tomarPedido.Show();
			parent.tomarPedido.Focus();
		}

		private void btnModificar_Click(object sender, EventArgs e)
		{
			try
			{
				string fechaenvio = fechaAenviar.Value.ToString("yyyy-MM-dd hh:mm");
				string[] campos = { "idcliente", "cliente", "contacto", "telefono", "direccionE", "tipo", "capacidad", "litros", "precio", "observaciones", "fechaEnvio" };
				string[] valores = { txtIDCliente.Text, txtCliente.Text, txtContacto.Text, txtTelefono.Text, txtDireccionE.Text, cmbTipo.Text, cmbCapacidad.Text, txtLitros.Text, txtPrecio.Text, txtObservaciones.Text, fechaenvio };
				datos.modificar("pedidos",txtIdPedido.Text, campos, valores);
				MessageBox.Show("Pedido modificado correctamente!", "Base de datos", MessageBoxButtons.OK, MessageBoxIcon.Information);
				parent.pendientes.llenarGrid();
				parent.porCobrar.llenarGrid();
				Close();
			}
			catch (MySqlException e1)
			{
				MessageBox.Show(e1.Message, "Error de base de datos!", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
		}

		private void frmTomarPedidos_Load(object sender, EventArgs e)
		{

		}
    }
}
